<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>文章列表</title>
    <link rel="stylesheet" href="./libs/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/iconfont.css">
    <link rel="stylesheet" href="css/main.css">
    <!-- jq -->
    <script src="./libs/jquery-1.12.4.min.js"></script>
    <!-- 模板引擎 -->
    <script src="./libs/template-web.js"></script>
</head>

<body>
    <div class="container-fluid">
        <div class="common_title" >
            文章发表
        </div>
        <div class="container-fluid common_con">
            <form class="form-horizontal article_form" id="form">
                <div class="form-group">
                    <label for="inputTitle" class="col-sm-2 control-label">文章标题：</label>
                    <div class="col-sm-10">
                        <input type="text" name="title" class="form-control title" id="inputTitle" value="文章标题文字">
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputCover" class="col-sm-2 control-label">文章封面：</label>
                    <div class="col-sm-10">
                        <img src="images/pic06.jpg" class="article_cover">
                        <input name="cover" type="file" id="inputCover">
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputCategory" class="col-sm-2 control-label">文章类别：</label>
                    <div class="col-sm-4">
                        <select class="form-control category" name="categoryId">
                            <option>类别一</option>
                            <option>类别二</option>
                            <option>类别三</option>
                            <option selected>类别四</option>
                            <option>类别五</option>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-2 control-label">发布时间：</label>
                    <div class="col-sm-4">
                        <div class="jeinpbox">
                            <input type="text" class="jeinput" id="testico" placeholder="YYYY-MM-DD" name="date">
                            <div class="icons jebtns"></div>
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputEmail3" class="col-sm-2 control-label">文章内容：</label>
                    <div class="col-sm-10">
                        <div id="xin">
                            <p>欢迎使用 <b>灿</b>富文本编辑器</p>
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="submit" class="btn btn-success btn-release">发布</button>
                        <button type="submit" class="btn btn-default btn-draft">存为草稿</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</body>

</html>
<script src="./libs/https.js"></script>
<!-- 以下三个是日期插件引入的文件 -->
<script src="./libs/jedate/js/jedate.js"></script>
<link rel="stylesheet" href="./libs/jedate/css/jeDate-test.css">
<link rel="stylesheet" href="./libs/jedate/css/jedate.css">

<!-- 导入富文本插件 -->
<script src="./libs/wangEditor/wangEditor.min.js"></script>

<!-- 准备下拉框模板 -->
<script type="text/html" id="tpl-category">
    {{each}}
        <option value='{{$value.id}}'>{{$value.name}}</option>
    {{/each}}
</script>
<script>
    $(function () {
        //文件上传时监听封面文件功能(封面预览)
        $('#inputCover').on('change',function () {
            let url=this.files[0]
            let picURL=URL.createObjectURL(url);
            $('.article_cover').attr('src',picURL)
        })
        // 2. 获得当前文章类别,加载下拉框选项
        $.ajax({
            type: 'get',
            url: BigNew.category_list,
            success: function(backData) {
                console.log(backData);
                if (backData.code == 200) {
                    let data = backData.data;
                    $('.category').html(template('tpl-category', data));
                }
            }
        })
        
         // 3. 给日期图标设置点击事件
         $('.jebtns').on('click',function(){
            // 调用日期插件核心方法
            jeDate("#testico",{
            format:"YYYY-MM-DD",//小横杠可以换别的
            trigger: false,//即不要再文本里触发，在图标里触发
            // theme:{bgcolor:"#D91600",pnColor:"#FF6653"},//颜色

            zIndex:20001//由于点击图标触发的日期显示被下面的富文本小插件挡住所以改变index比富文本index级别大1
        })
        })
        
        // 4. 启用富文本插件
        const E = window.wangEditor;
        const editor = new E('#xin');
        editor.create();

        // 5. 给发布与草稿按钮设置点击事件
        $('.form-group button').on('click',function(e){
            e.preventDefault()
            if($(this).text()=='发布'){
                saveData('已发布')
            }else{
                saveData('草稿')
            }
        })

         // 6. 封装函数,发起请求,保存文章数据
         function saveData(state) {
            // 获取form表单数据，记得在html结构对应功能加上一样名字的name属性
            let fd = new FormData(document.querySelector('form'));
            // state及content使用fd方法获取不到，需要用FormData方法的append()自己手动保存数据
            fd.append('state',state)
            fd.append('content',editor.txt.html())//editor.txt.html()是富文本插件获取html的方法

            // 接口文档的请求参数，查看哪项参数没有获取到，可以翻数据库接口说明
            console.log(fd.get('state'));//记得加引号
            console.log(fd.get('title'));//记得加引号
            console.log(fd.get('cover'));//记得加引号
            console.log(fd.get('categoryId'));//记得加引号,id要大写Id
            console.log(fd.get('date'));//记得加引号
            console.log(fd.get('content'));//记得加引号
            $.ajax({
                type: 'post',
                url: BigNew.article_publish,
                data:fd,
                // 取消ajax浏览图片的二次加密
                contentType:false,
                processData:false,
                success: function(backData) {
                    // console.log(backData);//假如有数据确实可能是图片没上传或没选日期
                    if(backData.code==200){
                        alert(backData.msg);
                        // 跳转文章列表页面
                        window.location='./article_list.html'
                    }
                }
            })
         }
    })
</script>